//********************************************************************************************************
// Product Name: MapWindow.dll Alpha
// Description:  Low level interfaces that allow separate components to use objects that are defined
//               in completely independant libraries so long as they satisfy the basic interface requirements.
//********************************************************************************************************
// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 
// you may not use this file except in compliance with the License. You may obtain a copy of the License at 
// http://www.mozilla.org/MPL/ 
//
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
// ANY KIND, either express or implied. See the License for the specificlanguage governing rights and 
// limitations under the License. 
//
// The Original Code is MapWindow.Interfaces
//
// The Initial Developer of this Original Code is Ted Dunsford. Created in August, 2007.
// 
// Contributor(s): (Open source contributors should list themselves and their modifications here). 
//
//********************************************************************************************************
using System;
using System.Collections.Generic;
using System.Text;
using MapWindow.Geometries;
using MapWindow.Components;
using MapWindow.Data;
using MapWindow.Components.Map;
using System.Drawing;
namespace MapWindow.Drawing
{
    /// <summary>
    /// Overrides the default layer characteristics for one particular point.
    /// This will also override any coloration based on symbology, which 
    /// is part of the PointFeatureLayer behavior.
    /// </summary>
    public interface IMapLineString : IFeature, ILineSymbolizer, IRenderable2D, IBasicLineString
    {

        /// <summary>
        /// Converts the double coordinates into an array of drawing points
        /// </summary>
        List<PointF[]> floatPointArrays
        {
            get;
            set;
        }

        ///// <summary>
        ///// Copies the symbol related properties of this object to a new Symbol
        ///// that will have the default values for the range related aspects.
        ///// </summary>
        ///// <returns>A new IPointSymbol</returns>
        //IPointSymbol ToSymbol();

        /// <summary>
        /// Gets a reference to the IMapLineStringLayer that contains this item.
        /// </summary>
        IMapLineStringLayer ParentMapLineStringLayer
        {
            get;
            set;
        }

        /// <summary>
        /// Gets an integer count representing the number of parts in this feature.
        /// </summary>
        int NumParts
        {
            get;
        }

        /// <summary>
        /// Gets or sets the list of BasicLineString parts that make up the
        /// entire set of linestrings to draw with this feature.
        /// </summary>
        List<IBasicLineString> Parts
        {
            get;
            set;
        }

        

    }
}

